热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

SwiftUI`@State`关键字有什么作用?

如何解决《SwiftUI`@State`关键字有什么作用?》经验,为你挑选了1个好方法。

该SwiftUI教程使用@State关键字来表示可变UI状态:

@State var showFavoritesOnly= false

它提供了以下摘要:

状态是一个值或一组值,可以随时间变化,并影响视图的行为,内容或布局。您可以将属性与@State属性一起使用,以将状态添加到视图中。

关键字的确切含义是什么?

变异@State变量如何导致视图重新计算?

其他变量在body吸气剂中如何不变?

fredpi.. 26

@State关键字是@propertyWrapper,最近刚刚在雨燕5.1中引入的功能。正如在相应提案中所解释的那样,它有点像价值包装程序,它避免了样板代码。


旁注:@propertyWrapper以前称为@propertyDelegate,但此后发生了变化。有关更多信息,请参见此帖子。


该官员@state文档具有以下的说:

SwiftUI 管理您声明为状态的任何属性的存储当状态值更改时,视图将使其外观无效并重新计算body。将状态用作给定视图的唯一事实来源。

State实例不是值本身;它不是值本身。这是读取和更改值的一种方法。要访问状态的基础值,请使用其value属性。

因此,当您初始化标记为的属性时@State,您实际上并不是在创建自己的变量,而是提示在后台SwiftUI创建“东西”来存储您设置的内容并从现在开始对其进行监视!您@State var只是充当访问此包装器委托

每次您的@State变量被写入时SwiftUI就会知道它正在监视它。它也将知道是否@State变量被读出Viewbody。使用此信息,它将能够重新计算View@Statebody对该变量进行更改之后在其变量中引用任何变量。



1> fredpi..:

@State关键字是@propertyWrapper,最近刚刚在雨燕5.1中引入的功能。正如在相应提案中所解释的那样,它有点像价值包装程序,它避免了样板代码。


旁注:@propertyWrapper以前称为@propertyDelegate,但此后发生了变化。有关更多信息,请参见此帖子。


该官员@state文档具有以下的说:

SwiftUI 管理您声明为状态的任何属性的存储当状态值更改时,视图将使其外观无效并重新计算body。将状态用作给定视图的唯一事实来源。

State实例不是值本身;它不是值本身。这是读取和更改值的一种方法。要访问状态的基础值,请使用其value属性。

因此,当您初始化标记为的属性时@State,您实际上并不是在创建自己的变量,而是提示在后台SwiftUI创建“东西”来存储您设置的内容并从现在开始对其进行监视!您@State var只是充当访问此包装器委托

每次您的@State变量被写入时SwiftUI就会知道它正在监视它。它也将知道是否@State变量被读出Viewbody。使用此信息,它将能够重新计算View@Statebody对该变量进行更改之后在其变量中引用任何变量。


推荐阅读
  • iOS Swift中如何实现自动登录?
    本文介绍了在iOS Swift中如何实现自动登录的方法,包括使用故事板、SWRevealViewController等技术,以及解决用户注销后重新登录自动跳转到主页的问题。 ... [详细]
  • 设计模式实现对象的复用——享元模式的概述和角色解析
    本文介绍了设计模式中的享元模式,该模式通过共享技术实现了大量细粒度对象的复用,从而提高系统性能。文章详细解析了享元模式的概述和角色,包括抽象享元类、具体享元类和非共享享元类。通过本文的阅读,读者可以了解享元模式的原理和应用场景,从而在实际开发中更好地利用该模式实现对象的复用。 ... [详细]
  • 这篇文章主要讲解了“如何应对Android面试”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何应对 ... [详细]
  • 在这一期的SendMessage函数应用中,我将向大家介绍如何利用消息函数来扩展树型列表(TreeView)控件的功能相信对于树型列表控件大家十分的熟悉, ... [详细]
  • #!usrbinkshPATHusrbin:bin:usrsbinexportPATHtime$(date%F)rq$(perl-eusePOSIXqw(strftime);pr ... [详细]
  • 我们需要监听ScroView的滑动情况,比如滑动了多少距离,是否滑到布局的顶部或者底部。可惜的是SDK并没有相应的方法,不过倒是提供了一个protectedvoidonScrollChang ... [详细]
  • 外层|条件下_MySQL还能这样玩第五篇之视图应该这样玩
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了MySQL还能这样玩---第五篇之视图应该这样玩相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 作业迁移
    背景:数据库服务器更换,1、数据库迁移(BACKUPRESTORE);2、数据库登录名用户迁移(注意孤立用户);3、作业迁移数据库迁移,备份数据库、拷贝备份文件到新服务器,还原数据 ... [详细]
  • cherry-pick命令cherry-pick命令可以将另一分支的commit内容合并到当前分支。假如现在有两个分支v1.0,v1.1。v1.0有如下commit:commit4 ... [详细]
  • 技术点:1、通过已知的网页路径获得流2、把流转换成字节数组3、把字节数组转换成String字符串显示在TextView控件中一、获得流publicstaticSt ... [详细]
  • 发现很多时候展示一堆文字,需要让局部的某些字变粗啊,变大、变颜色、能点击等等要求,今天在这简单总结下方便日后直接复用(用ht ... [详细]
  • IOSUITableView解析(一)
    UITableView的作用由于Iphone的大小有限,所以UITableView的作用是巨大的。比如QQ,微博等应用都用到了该控件。UITableVi ... [详细]
  • 一、在androidStudio中实现tabs比较简单,新建项目就可以选择tabs模板进行创建,默认实现tabs功能:直接运行项目就可以看到效果:可以说非常简单,但是我们在实际开发 ... [详细]
  • 开发笔记:前端消息提示框汇总 ... [详细]
  • ASP.NET Core WebAPI 开发新建WebAPI项目  转
    转 http:www.cnblogs.comlinezerop5497472.htmlASP.NETCoreWebAPI开发-新建WebAPI项目ASP.NETCoreWebAPI ... [详细]
author-avatar
浅小念豆科k
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有